To maintain high availability of data despite entity failures, systems often replicate entities that store and/or process the data. Replication is divided into strongly consistent replication (also known as pessimistic replication) and weakly consistent replication (also known as optimistic replication). In weakly consistent replication, replicas are allowed to diverge temporarily as long as they will eventually come to agreement. In strongly consistent replication, the system ensures that every replica will have the same system state.
Strongly consistent replication introduces the problem of large overhead. With strongly consistent replication, the system cannot continue until all replicas have been updated, and have reported their successful updates. This problem becomes exacerbated as the number of replicas increases, and as geographic separation of replicas increases. Weakly consistent replication introduces the problem of data loss in the event of device failure. Thus, both weakly consistent replication and strongly consistent replication have distinct advantages and disadvantages.